const userModel = require("../db/user")
const bcryptjs= require('bcryptjs')
// 导出函数
module.exports={
    // register:(req,res)=>{}
    // 简写
    register:(req,res)=>{
        // 接收post数据
        let {username,password,email,tel}=req.body
        // 为了防止前端没有验证数据是否为空或undefined，我们之这里验证一下
        if(!username||!password){
            res.json({
                error_code:2,
                msg:'数据不允许为空'
            })
            return
        }
        // 查询用户名是否已存在
        userModel.findOne({username},(err,docs)=>{
            if(err){
                throw new Error(err)
            }
            if(docs){
                res.json({
                    error_code:1,
                    msg:'用户名被占用'
                })
                return
            }
            userModel.insertMany({
                // 密码加密，安装模块npm i bcryptjs
                username,
                password:bcryptjs.hashSync(password,10),
                email,
                tel
            },(err,docs)=>{
                if(err){
                    throw new Error(err)
                }
                res.json({
                    error_code:0,
                    msg:'注册成功'
                })
                
            })
        })
        // res.send('注册')
    },
    login:(req,res)=>{
        let {username,password}=req.body
        // 判断输入的是否为空
        if(!username||!password){
            res.json({
                error_code:2,
                msg:'用户名或密码不允许为空'
            })
            return
        }
        userModel.findOne({username},(err,docs)=>{
            if(err){
                throw new Error(err)
            }
            // 判断是否查询到数据
            if(!docs){
                res.json({
                    error_code:4,
                    // msg:'用户名错误 '，
                    // 为了防止别人拿提示尝试用户或密码，直接响应用户名或密码错误，避免泄露信息
                    msg:'用户名或密码错误 '
                })
                return
            }
            // 验证密码
            let bool =bcryptjs.compareSync(password,docs.password)
            if(!bool){
                res.json({
                    error_code:4,
                    // msg:'密码错误'
                    msg:'用户名或密码错误 '
                })
                return
            }
            res.json({
                error_code:5,
                msg:'登录成功'
            })
        })

        // res.send('登录')
    }

    

}